breaking(mysql): assume all non-binary collations compatible with str
#3924
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
cc #3400 (comment)
comment in
sqlx-mysql/src/collation.rs
for explanationfixes #3200
fixes #3387
fixes #3390
fixes #3409
Breaking Changes
Vec<u8>
will be inferred to beString
(this should ultimately fix more code than it breaks).SET NAMES utf8mb4 COLLATE utf8_general_ci
is no longer sent by default; instead,SET NAMES utf8mb4
is sent toallow the server to select the appropriate default collation (since this is version- and configuration-dependent).
MySqlConnectOptions::charset()
and::collation()
now imply::set_names(true)
because they don't do anything otherwise.charset
doesn't change what's sent in theProtocol::HandshakeResponse41
packet as that normally only matters for error messages beforeSET NAMES
is sent. The default collation ifset_names = false
isutf8mb4_general_ci
.RawSql::fetch_optional()
now returnssqlx::Result<Option<DB::Row>>
instead ofsqlx::Result<DB::Row>
. Whoops.